package cn.b.sky.user.dao;

import cn.b.sky.user.service.model.LoginLog;
import cn.b.sky.user.service.model.condition.LoginLogCondition;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 
 * <strong>Title : LoginLogDao.java<br></strong>
 * <strong>Package : cn.b.sky.user.service.impl.dao<br></strong>
 * <strong>Description : </strong>登录日志数据接口<br> 
 * <strong>Create on : 2015-8-6 上午09:11:04<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface LoginLogDao {
  /**
   * 
   * <strong>Title : selectOnLineLog<br></strong>
   * <strong>Description : </strong>查询在线用户日志<br> 
   * <strong>Create on : 2015-8-6 上午10:20:54<br></strong>
   * <p>
   * @param now
   * @return
   * List<LoginLog>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<LoginLog> selectOnLineLog(LoginLogCondition loginLogCondition);

  /**
   * 
   * <strong>Title : selectOnLineLogCount<br></strong>
   * <strong>Description : </strong>查询在线日志数量<br> 
   * <strong>Create on : 2015-8-6 上午11:06:44<br></strong>
   * <p>
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectOnLineLogCount(@Param("siteCode") String siteCode);

  /**
   * 
   * <strong>Title : selectHisLog<br></strong>
   * <strong>Description : </strong>查询历史日志<br> 
   * <strong>Create on : 2015-8-6 下午02:03:20<br></strong>
   * <p>
   * @param loginLogCondition
   * @return
   * List<LoginLog>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<LoginLog> selectHisLog(LoginLogCondition loginLogCondition);

  /**
   * 
   * <strong>Title : selectHisLogCount<br></strong>
   * <strong>Description : </strong>查询历史日志条数<br> 
   * <strong>Create on : 2015-8-6 下午02:47:14<br></strong>
   * <p>
   * @param loginLogCondition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectHisLogCount(LoginLogCondition loginLogCondition);

  /**
   * 
   * <strong>Title : deleteLog<br></strong>
   * <strong>Description : </strong>删除日志<br> 
   * <strong>Create on : 2015-8-6 下午03:46:47<br></strong>
   * <p>
   * @param id
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteLog(long id);

  /**
   * 
   * <strong>Title : insertLog<br></strong>
   * <strong>Description : </strong>保存登录日志<br> 
   * <strong>Create on : 2015-8-31 上午11:17:33<br></strong>
   * <p>
   * @param log
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertLog(LoginLog log);

  void updateLog(LoginLog log);

  /**
   * 
   * <strong>Title : updateAllLonginingLog<br></strong>
   * <strong>Description : </strong>修改所有的未登出日志，服务器重启等异常时调用<br> 
   * <strong>Create on : 2016-9-7 下午4:50:06<br></strong>
   * <p>
   * @param log
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateAllLonginingLog(LoginLog log);

}
